MacOS 8 introduced a new feature called "sticky menus," where the menus would stay down after the user clicked in the menu bar or on a pop-up menu. In previous versions of the system software, on the other hand, the menus would always go away after the user let go of the mouse button. If you think the MacOS 8 sticky menus feature is an awful bit of interface design, and wish Apple had allowed the user to adjust the "stickiness" of the menus, you're not alone. Teflon is a simple little control panel that does just that.
Teflon requires MacOS 8 or better to operate -- it will load without problems under System 7.x but it won't do anything useful. Specifically, this control panel will not enable sticky menus on versions of the MacOS that don't include them.
Version history
Teflon 1.0 was a quick little INIT that I wrote in about an hour after having a sudden intuition about how MacOS 8's sticky menus must work. It disabled sticky menus, and that was all. None of the 1.x versions ever saw public release.
Teflon 2.0 added the control panel interface, and the ability to set a custom stickiness threshold. Also added was the "Menus always stick" option, but I doubt anyone actually uses this. :-)
Teflon 2.1 adds the "Menus automatically stick" option (described below) and fixed a few bugs in the corrupt preferences file handling routine in the cdev, none of which were serious.
Using Teflon
To install Teflon, simply place it in your Control Panels folder and restart. Teflon will disable sticky menus by default. If another setting is desired, Teflon can be configured by opening the control panel.
The settings are fairly straightforward, and there is Balloon Help available, but here is a brief explanation, if needed:
• "Default MacOS 8 behavior" turns Teflon off and makes the menus behave the way they did before Teflon was installed.
• "Menus never stick" disables sticky menus completely.
• "Menus always stick" makes your Mac's menus behave the way Windows menus do. Menus will stick no matter how long you hold down the mouse button.
• "Menus automatically stick" makes menus drop down automatically whenever the mouse pointer is over the menubar.
• "Custom stickiness threshold" requires some explanation. MacOS 8, by default, will only make the menus stick if you hold down the mouse button less than a certain number of ticks defined by the low memory variable DoubleTime. The theory is that if the user clicks the mouse button on the menu, the menu should stick, whereas if the mouse button is held down, the menu should go away when the button is released. However, DoubleTime is IMO much too long for this purpose and often I found that the menus would stick even when I held down the mouse button long enough to examine the menu. This option lets you adjust this variable to your preference, so that it more accurately reflects the amount of time the mouse button is held down during a 'click.'
This value defaults to 10 ticks (1/6 of a second).
Quirks and bugs
When the "Custom stickiness threshold" option is selected and the user clicks on a menu to make it stick, sometimes certain menus (particularly the Apple menu and the Bookmarks menu in Netscape) take so long to draw that the mouse-up event doesn't get processed by the system until after the threshold has passed. This means the menu will not stick even after the briefest of clicks. I am looking into a way around this, but for now try setting the threshold to a higher value. The default was raised from 6 to 10 in a partial attempt to fix this.
Pasting large amounts of text to the control panel can cause the text in the custom threshold box to scroll up to where you can't see it. Pressing any arrow key will let you see it again.
When the "Menus automatically stick" option is selected, moving the mouse pointer over the menubar clock makes the clock switch rapidly between the time and the date.
Also when that option is selected, popup menus will revert to the MacOS 8 default behavior. The next release will allow you to select settings for the pull-down and popup menus independently.
In the future...
Teflon 2.2 will have a brand-new Appearance-enabled interface. The reason this was put off until the next release is that it requires that I rewrite my control panel from the cumbersome and antiquated cdev framework to the APPC framework, which is so cumbersome and antiquated that it makes writing a cdev seem like programmer's heaven. Darn Apple breaking Appearance in cdevs...
In some future release, I will add the ability to navigate through menus using the keyboard only. This seemed like an impossible task at first, but I have been making some progress.
Contact and Other Info
If you have any questions, comments, suggestions, or bug reports, please send them to me at orion@rsnsoft.com. This software can be freely redistributed by any means, and can be included on CD-ROMs or in other software distributions as long as credit is given to the author.
Teflon is freeware. If you like Teflon, please drop me a line at the above address. Thanks to everyone who has written me; it is nice to know that someone out there is actually using this hack!
Thanks to Peter N Lewis, Jim Walker, and François Pottier for their ShowInitIcon code.
The "Patching Traps" chapter of the book Ultimate Mac Programming by Dave Mark was invaluable to the development of this product.
Thanks to Phil Rutschman for suggestions and advice.
Teflon 2.1 is Copyright 1997 Orion Bawdon, except for 'CODE' resource ID 7000, which came from the ShowInitIcon archive, located at the various Info-mac archives.